package Conversion;


import com.fasterxml.jackson.core.JsonProcessingException;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.junit.Test;

import java.lang.reflect.InvocationTargetException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

/**
 * @Author MJS
 * @Date 2021/8/5 17:02
 * @Description
 */
public class EntityConversion {
    public static void main(String[] args) throws InvocationTargetException, IllegalAccessException, JsonProcessingException {
//        Parent parent = new Parent();
//        List<Integer>list =new ArrayList<>();
//        list =null;
//        parent.setA(1);
//        parent.setB(list);
//        System.out.println(parent);

        HashMap<Object, Object> objectObjectHashMap = Maps.newHashMap();
        objectObjectHashMap.put("a",1000L);

        Integer a = (Integer) objectObjectHashMap.get("a");
        System.out.println(a);


//        Parent parent1 = new Parent();
////        System.out.println(parent1.getAge());
//        parent1.setAge("11");
////        String s = JSONObject.toJSON(parent1).toString();
//        String s = JSON.toJSONString(parent1);
//        String s1 = JSON.toJSONString(parent1, SerializerFeature.WriteMapNullValue);
//        ObjectMapper objectMapper =new ObjectMapper();
//        String s2 = objectMapper.writeValueAsString(parent1);
//        System.out.println(s);
//        System.out.println(s1);
//        System.out.println(s2);
//        Parent man = Parent.builder().age("13").sex("男").salary(new BigDecimal(2.3)).build();
//        System.out.println(man);
////
//
//
//
//
//        parent1.setAge("25").setName("张三").setSalary(new BigDecimal(3000)).setSex("男").setA(null);
//        System.out.println(parent1);

//
//        TreeMap<String, Object> treeMap = Maps.newTreeMap();
//        treeMap.put("aaa",123);
//        treeMap.put("aaa",234);
//        treeMap.put("bbb",998);
//        System.out.println(treeMap.size());
//        System.out.println(treeMap);
//

//        Parent parent2 = new Parent();
//        parent2.setAge("25").setName("张三").setSalary(new BigDecimal(3000)).setSex("男");
//        String s = JSON.toJSONString(parent1);
//        Map<String,Object> map = JSON.parseObject(s, Map.class);
//        System.out.println(map);
//        System.out.println(s);
//        System.out.println(parent1.equals(parent2));
//        System.out.println(MD5Utils.md5(parent1.toString()).equals(MD5Utils.md5(parent2.toString())));

//        ParentDto parentDto = new ParentDto();
//
//        BeanUtil.copyProperties(parent,parentDto);
//
//        System.out.println(JSON.toJSONString(parent));
//        System.out.println(JSON.toJSONString(parentDto));
//
//        Map<String,Object>map =new HashMap<>();
//        map.put("requestId","9K5bgurUfhCj7fN2");
//        map.put("notify",true);
//        map.put("notify",true);

//        System.out.println(replaceNameX("马"));
//        String phoneNumber="18231157516";
//        String hiddenPhone = phoneNumber.replaceAll("(\\d{3})\\d{6}(\\d{2})", "$1******$2");
//        System.out.println(hiddenPhone);
    }

    public static String replaceNameX(String str){
        // 获取姓名长度
        String custName = str;
        int length = custName.length();

        String reg = ".{1}";
        StringBuffer sb = new StringBuffer();
        Pattern p = Pattern.compile(reg);
        Matcher m = p.matcher(str);
        int i = 0;
        while(m.find()){
            i++;
            if(i==length)
                continue;
            m.appendReplacement(sb, "*");
        }
        m.appendTail(sb);
        return sb.toString();
    }

    @Test
    public void listTest(){
        ArrayList<String> list = Lists.newArrayList();
        list.add("哈哈");
        list.add("哦吼");
        list.add("嘿嘿");
        list.add("呵呵");
        list.add("嘻嘻");
        list.add("啊哈");

        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
        System.out.println("--------------------------------------");
        Iterator<String> iterator = list.iterator();//不知道数量的情况下  用while 比较方便
        while (iterator.hasNext()){
            System.out.println(iterator.next());
        }
    }
    @Test
    public void testList2List(){
        List<Integer>age= new ArrayList<>();
//        age.add(1);
//        age.add(2);
//        age.add(3);
//        age.add(4);
//        age.add(5);
        List<Integer> collect = age.stream().map(m -> {
            if (m == 1) m = 8;
            return m;
        }).collect(Collectors.toList());
        System.out.println(collect);
    }
    @Test
    public void testListFirstAdd(){
        ArrayList<Integer> list = Lists.newArrayList();
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
        System.out.println(list);
        list.add(0,8);
        list.add(5);
        System.out.println(list);
    }
}
